home *** CD-ROM | disk | FTP | other *** search
- package sun.font;
-
- import java.awt.Font;
- import java.awt.font.FontRenderContext;
- import java.awt.geom.AffineTransform;
- import java.awt.geom.NoninvertibleTransformException;
- import java.awt.geom.Point2D;
- import java.util.HashMap;
-
- final class GlyphLayout$SDCache {
- public Font key_font;
- public FontRenderContext key_frc;
- public AffineTransform dtx;
- public AffineTransform invdtx;
- public AffineTransform gtx;
- public Point2D.Float delta;
- // $FF: renamed from: sd sun.font.FontStrikeDesc
- public FontStrikeDesc field_0;
- private static final Point2D.Float ZERO_DELTA = new Point2D.Float();
- private static HashMap cache = new HashMap(10);
-
- private GlyphLayout$SDCache(Font var1, FontRenderContext var2) {
- this.key_font = var1;
- this.key_frc = var2;
- this.dtx = var2.getTransform();
- this.dtx.setTransform(this.dtx.getScaleX(), this.dtx.getShearY(), this.dtx.getShearX(), this.dtx.getScaleY(), (double)0.0F, (double)0.0F);
- if (!this.dtx.isIdentity()) {
- try {
- this.invdtx = this.dtx.createInverse();
- } catch (NoninvertibleTransformException var6) {
- throw new InternalError();
- }
- }
-
- float var3 = var1.getSize2D();
- if (var1.isTransformed()) {
- this.gtx = var1.getTransform();
- this.gtx.scale((double)var3, (double)var3);
- this.delta = new Point2D.Float((float)this.gtx.getTranslateX(), (float)this.gtx.getTranslateY());
- this.gtx.setTransform(this.gtx.getScaleX(), this.gtx.getShearY(), this.gtx.getShearX(), this.gtx.getScaleY(), (double)0.0F, (double)0.0F);
- this.gtx.preConcatenate(this.dtx);
- } else {
- this.delta = ZERO_DELTA;
- this.gtx = new AffineTransform(this.dtx);
- this.gtx.scale((double)var3, (double)var3);
- }
-
- int var4 = FontStrikeDesc.getAAHintIntVal(var2.getAntiAliasingHint(), FontManager.getFont2D(var1), (int)Math.abs(var3));
- int var5 = FontStrikeDesc.getFMHintIntVal(var2.getFractionalMetricsHint());
- this.field_0 = new FontStrikeDesc(this.dtx, this.gtx, var1.getStyle(), var4, var5);
- }
-
- public static GlyphLayout$SDCache get(Font var0, FontRenderContext var1) {
- GlyphLayout.SDCache.SDKey var2 = new GlyphLayout.SDCache.SDKey(var0, var1);
- GlyphLayout$SDCache var3 = (GlyphLayout$SDCache)cache.get(var2);
- if (var3 == null) {
- var3 = new GlyphLayout$SDCache(var0, var1);
- cache.put(var2, var3);
- }
-
- return var3;
- }
- }
-